package cn.king.springframework.aop;

/**
 * AOP中的相关术语
 * 1、连接点-JoinPoin(如一个类里面的所有方法)
 * 程序执行的某个特定位置，如类开始初始化前，类初始化后，类的某个方法调用前/调用后
 * 2、切点-Pointcut,如一个有多个方法的类中,每个方法都是连接点，当时只有部分被标注
 * 才会是切点，也就是需要做增强的点(是连接点的子集)
 * 3、增强-Advice 需要加入到节点接上的一段程序代码,除了用于描述一段程序代码外，增强
 * 还拥有一个和连接点相关的信息-执行点的方位如BeforeAdvice、RoundAdvice等
 * 4、目标对象-Target 增强逻辑的织如目标类
 * 5、切面-Aspect 由切点和增强组成
 * 切面有多种类型
 * Advisor-代表一般的切面，仅包含一个Advice，也就是将所有连接点都当做切点来对待
 * PointcutAdvisor-代表具有切点的切面,包含Ponitcut和Advice，这样就可以对一个
 * 具体的切点做增强
 *
 * Pointcut来描述一个切点，切点包含ClassFilter和MethodMatcher,通过ClassFilter
 * 定位一个类,通过MethodMatcher定位到特定的方法上
 */
public interface Pointcut {
    ClassFilter getClassFilter();

    MethodMatcher getMethodMatcher();
}
